package com.siwei.apply.service;

import java.util.List;
import java.util.Map;

/**
 * 节点地块关联 服务接口
 */
public interface NodeLandService {
    
    /**
     * 根据nodeId和geomDbId创建节点地块关联记录
     *
     * @param nodeId 节点ID
     * @param geomDbId 几何数据库ID
     */
    void createNodeLand(String nodeId, String geomDbId);

    /**
     * 根据nodeId查询地块几何信息，返回geom_db_id和并集的外边框、中心点
     *
     * @param nodeId 节点ID
     * @return 包含geomDbId、geoms、envelope、centroid的Map
     */
    Map<String, Object> getGeomByNodeId(String nodeId);

    /**
     * 根据nodeId删除节点地块关联记录
     *
     * @param nodeId 节点ID
     */
    void deleteByNodeId(String nodeId);

    /**
     * 根据项目ID和节点表名获取地块几何信息：
     * 1) 先查项目流程表获得nodeId；2) 再查节点地块几何信息。
     *
     * @param projectId 项目ID
     * @param nodeTableName 节点表名
     * @return 地块几何信息Map，结构同getGeomByNodeId返回
     */
    Map<String, Object> getGeomByProjectAndNodeTable(String projectId, String nodeTableName);
}